class Student:
    category = 'people'

    def __init__(self, name, sex):
        self.name = name
        self.sex = sex

    def hello(self):
        print(f"大家好，我是{self.name}，我在传奇等你！")


# zhazhahui = Student('渣渣灰', '男')
# print(zhazhahui.category)
# zhazhahui.hello()
#
# gutianle = Student('古天乐', '男')
# gutianle.hello()

print('*'*31)
# ----案例：QQ群类----
# 编写一个QQ群类：
# 属性：群号、群名、成员、群暗号
# 方法：显示群号、显示群名、显示群成员、出示群暗号、添加群成员、移除群成员

class QQ:
    crowd = 'QQ群聊'

    def __init__(self, id, name, member, dark):
        self.id = id
        self.name = name
        self.member = member
        self.dark = dark

    def qq_id(self):
        print("群号：", self.id)

    def qq_name(self):
        print('群名：', self.name)

    def qq_member(self):
        print('成员：', self.member)

    def qq_dark(self):
        tag = 0
        pwd = input('请出示你的暗号：')
        if pwd == self.dark:
            tag = 1
        return tag


    def add_member(self):
        tag = self.qq_dark()
        if tag == 1:
            name = input('请输入新成员名字：')
            self.member.append(name)
            print(self.member)
    def remove_qq_member(self,removemember):
        msg = 0
        tag = self.qq_dark()
        if tag == 1:
            name = input('请输入移除成员名字：')
            for member in self.member:
                if name == member:
                    msg = 1
                    self.member.remove(member)
                    print(self.member)
            if msg == 0:
                print('成员不存在')


# qq = QQ
# group = QQ('123456', '云听', ["31"], '123')
# print(qq.crowd)
# group.qq_id()
# group.qq_name()
# group.qq_member()
# # group.qq_dark()
# group.add_member()
# group.qq_member()
# group.remove_qq_member('3')
# group.qq_member()

# ----案例：银行卡类----
# 编写一个银行卡类：
# 属性：银行名称、卡号、密码、姓名、余额
# 方法：登录、存款、取款
# class Bank:
#     bank_name='邮政储蓄银行'
#     def __init__(self,id,name,password,balance):
#         self.id=id
#         self.password=password
#         self.name=name
#         self.balance=balance
#     def bank_login(self):
#         tag=0
#         id=input('请输入银行卡号：')
#         password=input('请输入密码：')
#         if id==self.id and password==self.password:
#             tag=1
#         return tag
#     def save_money(self):
#         tag=self.bank_login()
#         if tag == 1:
#             money=float(input('您的存入金额为：'))
#             self.balance+=money
#             print(f'金额已存入，余额为{self.balance}')
#
#     def take_money(self):
#         tag=self.bank_login()
#         if tag==1:
#             money=float(input("您的取款为："))
#             if money<=self.balance:
#                 self.balance-=money
#                 print(f"取款成功，余额为{self.balance}")
#             else:
#                 print('余额不足')

# if __name__ =='__main__':
#     card1=Bank('1001','云听','123456',8888)
#     card1.bank_login()
#     card1.save_money()
#     card1.take_money()

# ----封装案例：银行卡类----
# 编写一个银行卡类：
# 属性：银行名称、卡号、密码、姓名、余额
# 方法：登录、存款、取款
# 封装属性：余额
# 封装方法：登录
# 增加方法：显示余额、初始化余额
class Bank:
    bank_name='邮政储蓄银行'
    def __init__(self,id,name,password,balance):
        self.id=id
        self.password=password
        self.name=name
        self.__balance=0
    def __bank_login(self):
        tag=0
        id=input('请输入银行卡号：')
        password=input('请输入密码：')
        if id==self.id and password==self.password:
            tag=1
        return tag
    def save_money(self):
        tag=self.__bank_login()
        if tag == 1:
            money=float(input('您的存入金额为：'))
            self.__balance+=money
            print(f'金额已存入，余额为{self.__balance}')

    def take_money(self):
        tag=self.__bank_login()
        if tag==1:
            money=float(input("您的取款为："))
            if money<=self.__balance:
                self.__balance-=money
                print(f"取款成功，余额为{self.__balance}")
            else:
                print('余额不足')

    def set_money(self,money):
        tag=self.__bank_login()
        if tag ==1:
            if money>0:
                self.__balance+=money
                print(f"初试初始化成功，余额为{self.__balance}")

    def get_balance(self):
        tag=self.__bank_login()
        if tag==1:
            return self.__balance

# if __name__ =='__main__':
#     card1=Bank('1001','云听','123456',8888)
#     card1.set_money(10)
#     print(card1.take_money())

'''
----无人新零售----
随着无人新零售经济的崛起，商场、车站、大厦等各种场所都引入了无人饮品自动售货机，方便人们选购自己想要的饮品。
购买者选择想要的饮品，通过投币或扫码的方式支付，支付成功后从出货口取出饮品。
本案例要求编写代码，利用函数实现具有显示饮品信息、计算销售总额等功能的程序。

# 饮品信息 可以字典存储
goods = {'可口可乐': 2.5, '百事可乐': 2.5, '冰红茶': 3, '脉动': 3.5}

# 饮品信息 可以列表嵌套字典存储
goods1 = {'id': '1001', 'name': '可口可乐', 'price': 2.5}
goods2 = {'id': '1002', 'name': '冰红茶', 'price': 3}
goods3 = {'id': '1003', 'name': '脉动', 'price': 3.5}
goods_list = [goods1, goods2, goods3]
'''


goods1 = {'id': '1001', 'name': '可口可乐', 'price': 2.5}
goods2 = {'id': '1002', 'name': '冰红茶', 'price': 3}
goods3 = {'id': '1003', 'name': '脉动', 'price': 3.5}
goods_list = [goods1, goods2, goods3]


class New_retail:


    def __init__(self, goods_list):
        self.goods_list = goods_list  # 初始化信息
        self.total_sales = 0  # 销售额


    def show_goods(self):  # 显示信息
        for goods in self.goods_list:
            print(f'商品ID为：{goods["id"]}, 商品名称为：{goods["name"]}, 商品价格为：{goods["price"]}')


    def buy_goods(self):  # 购买
        for goods in self.goods_list:
            goods_id = input('请输入您要购买的商品ID:')
            if goods['id'] == goods_id:
                print(f'您的商品{goods["name"]}选购成功，请付款')
            self.total_sales += goods['price']
            return
        print('商品ID无效，请重试...')


    def count_total_goods(self):  # 计算总销售额
        input('请选择付款方式：1.投币 2.扫码\n')
        return self.total_sales

newretail = New_retail(goods_list)  # 类实例化
newretail.show_goods()  # 显示
newretail.buy_goods()  # 购买
total_goods = newretail.count_total_goods()  # 计算销售额
print(f'感谢您的购买，您的商品总价为：{total_goods}')
